/**
 * @fileoverview
 * @enhanceable
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!


goog.provide('proto.AuthReqBody');
goog.provide('proto.AuthRespBody');
goog.provide('proto.BeginToLiveReqBody');
goog.provide('proto.BeginToLiveRespBody');
goog.provide('proto.ChatReqBody');
goog.provide('proto.ChatRespBody');
goog.provide('proto.ChatType');
goog.provide('proto.Client');
goog.provide('proto.ClientPageReqBody');
goog.provide('proto.ClientPageRespBody');
goog.provide('proto.Command');
goog.provide('proto.DeviceType');
goog.provide('proto.EndLiveReqBody');
goog.provide('proto.EndLiveRespBody');
goog.provide('proto.ExitGroupNotifyRespBody');
goog.provide('proto.JoinGroupNotifyRespBody');
goog.provide('proto.JoinGroupReqBody');
goog.provide('proto.JoinGroupRespBody');
goog.provide('proto.JoinGroupResult');
goog.provide('proto.LoginReqBody');
goog.provide('proto.LoginRespBody');
goog.provide('proto.User');

goog.require('jspb.Message');
goog.require('jspb.BinaryReader');
goog.require('jspb.BinaryWriter');


/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.User = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.User, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.User.displayName = 'proto.User';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.User.prototype.toObject = function(opt_includeInstance) {
  return proto.User.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.User} msg The msg instance to transform.
 * @return {!Object}
 */
proto.User.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, 0),
    nick: jspb.Message.getFieldWithDefault(msg, 2, ""),
    avatar: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.User}
 */
proto.User.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.User;
  return proto.User.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.User} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.User}
 */
proto.User.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setNick(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setAvatar(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.User.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.User.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.User} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.User.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getNick();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getAvatar();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int64 id = 1;
 * @return {number}
 */
proto.User.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.User.prototype.setId = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string nick = 2;
 * @return {string}
 */
proto.User.prototype.getNick = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.User.prototype.setNick = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string avatar = 3;
 * @return {string}
 */
proto.User.prototype.getAvatar = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/** @param {string} value */
proto.User.prototype.setAvatar = function(value) {
  jspb.Message.setField(this, 3, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Client = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.Client, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.Client.displayName = 'proto.Client';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Client.prototype.toObject = function(opt_includeInstance) {
  return proto.Client.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Client} msg The msg instance to transform.
 * @return {!Object}
 */
proto.Client.toObject = function(includeInstance, msg) {
  var f, obj = {
    id: jspb.Message.getFieldWithDefault(msg, 1, ""),
    ip: jspb.Message.getFieldWithDefault(msg, 2, ""),
    port: jspb.Message.getFieldWithDefault(msg, 3, 0),
    user: (f = msg.getUser()) && proto.User.toObject(includeInstance, f),
    region: jspb.Message.getFieldWithDefault(msg, 5, ""),
    useragent: jspb.Message.getFieldWithDefault(msg, 6, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Client}
 */
proto.Client.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Client;
  return proto.Client.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Client} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Client}
 */
proto.Client.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setId(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setIp(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPort(value);
      break;
    case 4:
      var value = new proto.User;
      reader.readMessage(value,proto.User.deserializeBinaryFromReader);
      msg.setUser(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setRegion(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setUseragent(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Client.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Client.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Client} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.Client.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getId();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getIp();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getPort();
  if (f !== 0) {
    writer.writeInt32(
      3,
      f
    );
  }
  f = message.getUser();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.User.serializeBinaryToWriter
    );
  }
  f = message.getRegion();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getUseragent();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
};


/**
 * optional string id = 1;
 * @return {string}
 */
proto.Client.prototype.getId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/** @param {string} value */
proto.Client.prototype.setId = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string ip = 2;
 * @return {string}
 */
proto.Client.prototype.getIp = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.Client.prototype.setIp = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional int32 port = 3;
 * @return {number}
 */
proto.Client.prototype.getPort = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/** @param {number} value */
proto.Client.prototype.setPort = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional User user = 4;
 * @return {?proto.User}
 */
proto.Client.prototype.getUser = function() {
  return /** @type{?proto.User} */ (
    jspb.Message.getWrapperField(this, proto.User, 4));
};


/** @param {?proto.User|undefined} value */
proto.Client.prototype.setUser = function(value) {
  jspb.Message.setWrapperField(this, 4, value);
};


proto.Client.prototype.clearUser = function() {
  this.setUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.Client.prototype.hasUser = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional string region = 5;
 * @return {string}
 */
proto.Client.prototype.getRegion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/** @param {string} value */
proto.Client.prototype.setRegion = function(value) {
  jspb.Message.setField(this, 5, value);
};


/**
 * optional string useragent = 6;
 * @return {string}
 */
proto.Client.prototype.getUseragent = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/** @param {string} value */
proto.Client.prototype.setUseragent = function(value) {
  jspb.Message.setField(this, 6, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.AuthReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.AuthReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.AuthReqBody.displayName = 'proto.AuthReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.AuthReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.AuthReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.AuthReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.AuthReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    token: jspb.Message.getFieldWithDefault(msg, 1, ""),
    deviceid: jspb.Message.getFieldWithDefault(msg, 2, ""),
    seq: jspb.Message.getFieldWithDefault(msg, 3, 0),
    devicetype: jspb.Message.getFieldWithDefault(msg, 4, 0),
    cid: jspb.Message.getFieldWithDefault(msg, 5, ""),
    appversion: jspb.Message.getFieldWithDefault(msg, 6, ""),
    deviceinfo: jspb.Message.getFieldWithDefault(msg, 7, ""),
    sign: jspb.Message.getFieldWithDefault(msg, 8, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.AuthReqBody}
 */
proto.AuthReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.AuthReqBody;
  return proto.AuthReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.AuthReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.AuthReqBody}
 */
proto.AuthReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setToken(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setDeviceid(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setSeq(value);
      break;
    case 4:
      var value = /** @type {!proto.DeviceType} */ (reader.readEnum());
      msg.setDevicetype(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setCid(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setAppversion(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setDeviceinfo(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setSign(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.AuthReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.AuthReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.AuthReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.AuthReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getToken();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getDeviceid();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getSeq();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getDevicetype();
  if (f !== 0.0) {
    writer.writeEnum(
      4,
      f
    );
  }
  f = message.getCid();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getAppversion();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getDeviceinfo();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getSign();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
};


/**
 * optional string token = 1;
 * @return {string}
 */
proto.AuthReqBody.prototype.getToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/** @param {string} value */
proto.AuthReqBody.prototype.setToken = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string deviceId = 2;
 * @return {string}
 */
proto.AuthReqBody.prototype.getDeviceid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.AuthReqBody.prototype.setDeviceid = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional int64 seq = 3;
 * @return {number}
 */
proto.AuthReqBody.prototype.getSeq = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/** @param {number} value */
proto.AuthReqBody.prototype.setSeq = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional DeviceType deviceType = 4;
 * @return {!proto.DeviceType}
 */
proto.AuthReqBody.prototype.getDevicetype = function() {
  return /** @type {!proto.DeviceType} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/** @param {!proto.DeviceType} value */
proto.AuthReqBody.prototype.setDevicetype = function(value) {
  jspb.Message.setField(this, 4, value);
};


/**
 * optional string cid = 5;
 * @return {string}
 */
proto.AuthReqBody.prototype.getCid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/** @param {string} value */
proto.AuthReqBody.prototype.setCid = function(value) {
  jspb.Message.setField(this, 5, value);
};


/**
 * optional string appVersion = 6;
 * @return {string}
 */
proto.AuthReqBody.prototype.getAppversion = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/** @param {string} value */
proto.AuthReqBody.prototype.setAppversion = function(value) {
  jspb.Message.setField(this, 6, value);
};


/**
 * optional string deviceInfo = 7;
 * @return {string}
 */
proto.AuthReqBody.prototype.getDeviceinfo = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/** @param {string} value */
proto.AuthReqBody.prototype.setDeviceinfo = function(value) {
  jspb.Message.setField(this, 7, value);
};


/**
 * optional string sign = 8;
 * @return {string}
 */
proto.AuthReqBody.prototype.getSign = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/** @param {string} value */
proto.AuthReqBody.prototype.setSign = function(value) {
  jspb.Message.setField(this, 8, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.AuthRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.AuthRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.AuthRespBody.displayName = 'proto.AuthRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.AuthRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.AuthRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.AuthRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.AuthRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {

  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.AuthRespBody}
 */
proto.AuthRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.AuthRespBody;
  return proto.AuthRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.AuthRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.AuthRespBody}
 */
proto.AuthRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.AuthRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.AuthRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.AuthRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.AuthRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.LoginReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.LoginReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.LoginReqBody.displayName = 'proto.LoginReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.LoginReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.LoginReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.LoginReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.LoginReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    loginname: jspb.Message.getFieldWithDefault(msg, 1, ""),
    password: jspb.Message.getFieldWithDefault(msg, 2, ""),
    token: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.LoginReqBody}
 */
proto.LoginReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.LoginReqBody;
  return proto.LoginReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.LoginReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.LoginReqBody}
 */
proto.LoginReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setLoginname(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setPassword(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setToken(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.LoginReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.LoginReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.LoginReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.LoginReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getLoginname();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getPassword();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getToken();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional string loginname = 1;
 * @return {string}
 */
proto.LoginReqBody.prototype.getLoginname = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/** @param {string} value */
proto.LoginReqBody.prototype.setLoginname = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string password = 2;
 * @return {string}
 */
proto.LoginReqBody.prototype.getPassword = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.LoginReqBody.prototype.setPassword = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string token = 3;
 * @return {string}
 */
proto.LoginReqBody.prototype.getToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/** @param {string} value */
proto.LoginReqBody.prototype.setToken = function(value) {
  jspb.Message.setField(this, 3, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.LoginRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.LoginRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.LoginRespBody.displayName = 'proto.LoginRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.LoginRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.LoginRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.LoginRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.LoginRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    token: jspb.Message.getFieldWithDefault(msg, 1, ""),
    user: (f = msg.getUser()) && proto.User.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.LoginRespBody}
 */
proto.LoginRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.LoginRespBody;
  return proto.LoginRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.LoginRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.LoginRespBody}
 */
proto.LoginRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setToken(value);
      break;
    case 2:
      var value = new proto.User;
      reader.readMessage(value,proto.User.deserializeBinaryFromReader);
      msg.setUser(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.LoginRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.LoginRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.LoginRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.LoginRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getToken();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getUser();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.User.serializeBinaryToWriter
    );
  }
};


/**
 * optional string token = 1;
 * @return {string}
 */
proto.LoginRespBody.prototype.getToken = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/** @param {string} value */
proto.LoginRespBody.prototype.setToken = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional User user = 2;
 * @return {?proto.User}
 */
proto.LoginRespBody.prototype.getUser = function() {
  return /** @type{?proto.User} */ (
    jspb.Message.getWrapperField(this, proto.User, 2));
};


/** @param {?proto.User|undefined} value */
proto.LoginRespBody.prototype.setUser = function(value) {
  jspb.Message.setWrapperField(this, 2, value);
};


proto.LoginRespBody.prototype.clearUser = function() {
  this.setUser(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.LoginRespBody.prototype.hasUser = function() {
  return jspb.Message.getField(this, 2) != null;
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.JoinGroupReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.JoinGroupReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.JoinGroupReqBody.displayName = 'proto.JoinGroupReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.JoinGroupReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.JoinGroupReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.JoinGroupReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.JoinGroupReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    group: jspb.Message.getFieldWithDefault(msg, 1, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.JoinGroupReqBody}
 */
proto.JoinGroupReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.JoinGroupReqBody;
  return proto.JoinGroupReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.JoinGroupReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.JoinGroupReqBody}
 */
proto.JoinGroupReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.JoinGroupReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.JoinGroupReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.JoinGroupReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.JoinGroupReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
};


/**
 * optional string group = 1;
 * @return {string}
 */
proto.JoinGroupReqBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/** @param {string} value */
proto.JoinGroupReqBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.JoinGroupRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.JoinGroupRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.JoinGroupRespBody.displayName = 'proto.JoinGroupRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.JoinGroupRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.JoinGroupRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.JoinGroupRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.JoinGroupRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    result: jspb.Message.getFieldWithDefault(msg, 1, 0),
    group: jspb.Message.getFieldWithDefault(msg, 2, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.JoinGroupRespBody}
 */
proto.JoinGroupRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.JoinGroupRespBody;
  return proto.JoinGroupRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.JoinGroupRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.JoinGroupRespBody}
 */
proto.JoinGroupRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {!proto.JoinGroupResult} */ (reader.readEnum());
      msg.setResult(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.JoinGroupRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.JoinGroupRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.JoinGroupRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.JoinGroupRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getResult();
  if (f !== 0.0) {
    writer.writeEnum(
      1,
      f
    );
  }
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional JoinGroupResult result = 1;
 * @return {!proto.JoinGroupResult}
 */
proto.JoinGroupRespBody.prototype.getResult = function() {
  return /** @type {!proto.JoinGroupResult} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {!proto.JoinGroupResult} value */
proto.JoinGroupRespBody.prototype.setResult = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional string group = 2;
 * @return {string}
 */
proto.JoinGroupRespBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.JoinGroupRespBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 2, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.JoinGroupNotifyRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.JoinGroupNotifyRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.JoinGroupNotifyRespBody.displayName = 'proto.JoinGroupNotifyRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.JoinGroupNotifyRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.JoinGroupNotifyRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.JoinGroupNotifyRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.JoinGroupNotifyRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    client: (f = msg.getClient()) && proto.Client.toObject(includeInstance, f),
    group: jspb.Message.getFieldWithDefault(msg, 2, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.JoinGroupNotifyRespBody}
 */
proto.JoinGroupNotifyRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.JoinGroupNotifyRespBody;
  return proto.JoinGroupNotifyRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.JoinGroupNotifyRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.JoinGroupNotifyRespBody}
 */
proto.JoinGroupNotifyRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.Client;
      reader.readMessage(value,proto.Client.deserializeBinaryFromReader);
      msg.setClient(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.JoinGroupNotifyRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.JoinGroupNotifyRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.JoinGroupNotifyRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.JoinGroupNotifyRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClient();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.Client.serializeBinaryToWriter
    );
  }
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional Client client = 1;
 * @return {?proto.Client}
 */
proto.JoinGroupNotifyRespBody.prototype.getClient = function() {
  return /** @type{?proto.Client} */ (
    jspb.Message.getWrapperField(this, proto.Client, 1));
};


/** @param {?proto.Client|undefined} value */
proto.JoinGroupNotifyRespBody.prototype.setClient = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.JoinGroupNotifyRespBody.prototype.clearClient = function() {
  this.setClient(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.JoinGroupNotifyRespBody.prototype.hasClient = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional string group = 2;
 * @return {string}
 */
proto.JoinGroupNotifyRespBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.JoinGroupNotifyRespBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 2, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.ExitGroupNotifyRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.ExitGroupNotifyRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.ExitGroupNotifyRespBody.displayName = 'proto.ExitGroupNotifyRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.ExitGroupNotifyRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.ExitGroupNotifyRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.ExitGroupNotifyRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.ExitGroupNotifyRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    client: (f = msg.getClient()) && proto.Client.toObject(includeInstance, f),
    group: jspb.Message.getFieldWithDefault(msg, 2, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.ExitGroupNotifyRespBody}
 */
proto.ExitGroupNotifyRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.ExitGroupNotifyRespBody;
  return proto.ExitGroupNotifyRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.ExitGroupNotifyRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.ExitGroupNotifyRespBody}
 */
proto.ExitGroupNotifyRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.Client;
      reader.readMessage(value,proto.Client.deserializeBinaryFromReader);
      msg.setClient(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.ExitGroupNotifyRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.ExitGroupNotifyRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.ExitGroupNotifyRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.ExitGroupNotifyRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getClient();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.Client.serializeBinaryToWriter
    );
  }
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
};


/**
 * optional Client client = 1;
 * @return {?proto.Client}
 */
proto.ExitGroupNotifyRespBody.prototype.getClient = function() {
  return /** @type{?proto.Client} */ (
    jspb.Message.getWrapperField(this, proto.Client, 1));
};


/** @param {?proto.Client|undefined} value */
proto.ExitGroupNotifyRespBody.prototype.setClient = function(value) {
  jspb.Message.setWrapperField(this, 1, value);
};


proto.ExitGroupNotifyRespBody.prototype.clearClient = function() {
  this.setClient(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.ExitGroupNotifyRespBody.prototype.hasClient = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional string group = 2;
 * @return {string}
 */
proto.ExitGroupNotifyRespBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/** @param {string} value */
proto.ExitGroupNotifyRespBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 2, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.ChatReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.ChatReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.ChatReqBody.displayName = 'proto.ChatReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.ChatReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.ChatReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.ChatReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.ChatReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: jspb.Message.getFieldWithDefault(msg, 1, 0),
    type: jspb.Message.getFieldWithDefault(msg, 2, 0),
    text: jspb.Message.getFieldWithDefault(msg, 3, ""),
    group: jspb.Message.getFieldWithDefault(msg, 4, ""),
    toid: jspb.Message.getFieldWithDefault(msg, 5, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.ChatReqBody}
 */
proto.ChatReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.ChatReqBody;
  return proto.ChatReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.ChatReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.ChatReqBody}
 */
proto.ChatReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTime(value);
      break;
    case 2:
      var value = /** @type {!proto.ChatType} */ (reader.readEnum());
      msg.setType(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setText(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setToid(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.ChatReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.ChatReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.ChatReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.ChatReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
  f = message.getText();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getToid();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
};


/**
 * optional int64 time = 1;
 * @return {number}
 */
proto.ChatReqBody.prototype.getTime = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.ChatReqBody.prototype.setTime = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional ChatType type = 2;
 * @return {!proto.ChatType}
 */
proto.ChatReqBody.prototype.getType = function() {
  return /** @type {!proto.ChatType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.ChatType} value */
proto.ChatReqBody.prototype.setType = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string text = 3;
 * @return {string}
 */
proto.ChatReqBody.prototype.getText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/** @param {string} value */
proto.ChatReqBody.prototype.setText = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string group = 4;
 * @return {string}
 */
proto.ChatReqBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/** @param {string} value */
proto.ChatReqBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 4, value);
};


/**
 * optional string toId = 5;
 * @return {string}
 */
proto.ChatReqBody.prototype.getToid = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/** @param {string} value */
proto.ChatReqBody.prototype.setToid = function(value) {
  jspb.Message.setField(this, 5, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.ChatRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.ChatRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.ChatRespBody.displayName = 'proto.ChatRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.ChatRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.ChatRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.ChatRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.ChatRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: jspb.Message.getFieldWithDefault(msg, 1, 0),
    type: jspb.Message.getFieldWithDefault(msg, 2, 0),
    text: jspb.Message.getFieldWithDefault(msg, 3, ""),
    fromclient: (f = msg.getFromclient()) && proto.Client.toObject(includeInstance, f),
    toclient: (f = msg.getToclient()) && proto.Client.toObject(includeInstance, f),
    group: jspb.Message.getFieldWithDefault(msg, 6, ""),
    id: jspb.Message.getFieldWithDefault(msg, 7, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.ChatRespBody}
 */
proto.ChatRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.ChatRespBody;
  return proto.ChatRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.ChatRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.ChatRespBody}
 */
proto.ChatRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTime(value);
      break;
    case 2:
      var value = /** @type {!proto.ChatType} */ (reader.readEnum());
      msg.setType(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setText(value);
      break;
    case 4:
      var value = new proto.Client;
      reader.readMessage(value,proto.Client.deserializeBinaryFromReader);
      msg.setFromclient(value);
      break;
    case 5:
      var value = new proto.Client;
      reader.readMessage(value,proto.Client.deserializeBinaryFromReader);
      msg.setToclient(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.ChatRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.ChatRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.ChatRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.ChatRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getType();
  if (f !== 0.0) {
    writer.writeEnum(
      2,
      f
    );
  }
  f = message.getText();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getFromclient();
  if (f != null) {
    writer.writeMessage(
      4,
      f,
      proto.Client.serializeBinaryToWriter
    );
  }
  f = message.getToclient();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      proto.Client.serializeBinaryToWriter
    );
  }
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getId();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
};


/**
 * optional int64 time = 1;
 * @return {number}
 */
proto.ChatRespBody.prototype.getTime = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.ChatRespBody.prototype.setTime = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional ChatType type = 2;
 * @return {!proto.ChatType}
 */
proto.ChatRespBody.prototype.getType = function() {
  return /** @type {!proto.ChatType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {!proto.ChatType} value */
proto.ChatRespBody.prototype.setType = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string text = 3;
 * @return {string}
 */
proto.ChatRespBody.prototype.getText = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/** @param {string} value */
proto.ChatRespBody.prototype.setText = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional Client fromClient = 4;
 * @return {?proto.Client}
 */
proto.ChatRespBody.prototype.getFromclient = function() {
  return /** @type{?proto.Client} */ (
    jspb.Message.getWrapperField(this, proto.Client, 4));
};


/** @param {?proto.Client|undefined} value */
proto.ChatRespBody.prototype.setFromclient = function(value) {
  jspb.Message.setWrapperField(this, 4, value);
};


proto.ChatRespBody.prototype.clearFromclient = function() {
  this.setFromclient(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.ChatRespBody.prototype.hasFromclient = function() {
  return jspb.Message.getField(this, 4) != null;
};


/**
 * optional Client toClient = 5;
 * @return {?proto.Client}
 */
proto.ChatRespBody.prototype.getToclient = function() {
  return /** @type{?proto.Client} */ (
    jspb.Message.getWrapperField(this, proto.Client, 5));
};


/** @param {?proto.Client|undefined} value */
proto.ChatRespBody.prototype.setToclient = function(value) {
  jspb.Message.setWrapperField(this, 5, value);
};


proto.ChatRespBody.prototype.clearToclient = function() {
  this.setToclient(undefined);
};


/**
 * Returns whether this field is set.
 * @return {!boolean}
 */
proto.ChatRespBody.prototype.hasToclient = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional string group = 6;
 * @return {string}
 */
proto.ChatRespBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/** @param {string} value */
proto.ChatRespBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 6, value);
};


/**
 * optional string id = 7;
 * @return {string}
 */
proto.ChatRespBody.prototype.getId = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/** @param {string} value */
proto.ChatRespBody.prototype.setId = function(value) {
  jspb.Message.setField(this, 7, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.ClientPageReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.ClientPageReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.ClientPageReqBody.displayName = 'proto.ClientPageReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.ClientPageReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.ClientPageReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.ClientPageReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.ClientPageReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    pageindex: jspb.Message.getFieldWithDefault(msg, 1, 0),
    pagesize: jspb.Message.getFieldWithDefault(msg, 2, 0),
    group: jspb.Message.getFieldWithDefault(msg, 3, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.ClientPageReqBody}
 */
proto.ClientPageReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.ClientPageReqBody;
  return proto.ClientPageReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.ClientPageReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.ClientPageReqBody}
 */
proto.ClientPageReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageindex(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPagesize(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setGroup(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.ClientPageReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.ClientPageReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.ClientPageReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.ClientPageReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPageindex();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getPagesize();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getGroup();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
};


/**
 * optional int32 pageIndex = 1;
 * @return {number}
 */
proto.ClientPageReqBody.prototype.getPageindex = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.ClientPageReqBody.prototype.setPageindex = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional int32 pageSize = 2;
 * @return {number}
 */
proto.ClientPageReqBody.prototype.getPagesize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {number} value */
proto.ClientPageReqBody.prototype.setPagesize = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string group = 3;
 * @return {string}
 */
proto.ClientPageReqBody.prototype.getGroup = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/** @param {string} value */
proto.ClientPageReqBody.prototype.setGroup = function(value) {
  jspb.Message.setField(this, 3, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.ClientPageRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.ClientPageRespBody.repeatedFields_, null);
};
goog.inherits(proto.ClientPageRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.ClientPageRespBody.displayName = 'proto.ClientPageRespBody';
}
/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.ClientPageRespBody.repeatedFields_ = [4];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.ClientPageRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.ClientPageRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.ClientPageRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.ClientPageRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    pageindex: jspb.Message.getFieldWithDefault(msg, 1, 0),
    pagesize: jspb.Message.getFieldWithDefault(msg, 2, 0),
    recordcount: jspb.Message.getFieldWithDefault(msg, 3, 0),
    clientsList: jspb.Message.toObjectList(msg.getClientsList(),
    proto.Client.toObject, includeInstance)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.ClientPageRespBody}
 */
proto.ClientPageRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.ClientPageRespBody;
  return proto.ClientPageRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.ClientPageRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.ClientPageRespBody}
 */
proto.ClientPageRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPageindex(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setPagesize(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setRecordcount(value);
      break;
    case 4:
      var value = new proto.Client;
      reader.readMessage(value,proto.Client.deserializeBinaryFromReader);
      msg.addClients(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.ClientPageRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.ClientPageRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.ClientPageRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.ClientPageRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPageindex();
  if (f !== 0) {
    writer.writeInt32(
      1,
      f
    );
  }
  f = message.getPagesize();
  if (f !== 0) {
    writer.writeInt32(
      2,
      f
    );
  }
  f = message.getRecordcount();
  if (f !== 0) {
    writer.writeInt32(
      3,
      f
    );
  }
  f = message.getClientsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      4,
      f,
      proto.Client.serializeBinaryToWriter
    );
  }
};


/**
 * optional int32 pageIndex = 1;
 * @return {number}
 */
proto.ClientPageRespBody.prototype.getPageindex = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.ClientPageRespBody.prototype.setPageindex = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional int32 pageSize = 2;
 * @return {number}
 */
proto.ClientPageRespBody.prototype.getPagesize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {number} value */
proto.ClientPageRespBody.prototype.setPagesize = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional int32 recordCount = 3;
 * @return {number}
 */
proto.ClientPageRespBody.prototype.getRecordcount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/** @param {number} value */
proto.ClientPageRespBody.prototype.setRecordcount = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * repeated Client clients = 4;
 * If you change this array by adding, removing or replacing elements, or if you
 * replace the array itself, then you must call the setter to update it.
 * @return {!Array.<!proto.Client>}
 */
proto.ClientPageRespBody.prototype.getClientsList = function() {
  return /** @type{!Array.<!proto.Client>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Client, 4));
};


/** @param {!Array.<!proto.Client>} value */
proto.ClientPageRespBody.prototype.setClientsList = function(value) {
  jspb.Message.setRepeatedWrapperField(this, 4, value);
};


/**
 * @param {!proto.Client=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Client}
 */
proto.ClientPageRespBody.prototype.addClients = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.Client, opt_index);
};


proto.ClientPageRespBody.prototype.clearClientsList = function() {
  this.setClientsList([]);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.BeginToLiveReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.BeginToLiveReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.BeginToLiveReqBody.displayName = 'proto.BeginToLiveReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.BeginToLiveReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.BeginToLiveReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.BeginToLiveReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.BeginToLiveReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.BeginToLiveReqBody}
 */
proto.BeginToLiveReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.BeginToLiveReqBody;
  return proto.BeginToLiveReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.BeginToLiveReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.BeginToLiveReqBody}
 */
proto.BeginToLiveReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTime(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.BeginToLiveReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.BeginToLiveReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.BeginToLiveReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.BeginToLiveReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
};


/**
 * optional int64 time = 1;
 * @return {number}
 */
proto.BeginToLiveReqBody.prototype.getTime = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.BeginToLiveReqBody.prototype.setTime = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.BeginToLiveRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.BeginToLiveRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.BeginToLiveRespBody.displayName = 'proto.BeginToLiveRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.BeginToLiveRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.BeginToLiveRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.BeginToLiveRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.BeginToLiveRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: jspb.Message.getFieldWithDefault(msg, 1, 0),
    liveid: jspb.Message.getFieldWithDefault(msg, 2, 0),
    rtmppublishurl: jspb.Message.getFieldWithDefault(msg, 3, ""),
    rtmpliveurl: jspb.Message.getFieldWithDefault(msg, 4, "")
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.BeginToLiveRespBody}
 */
proto.BeginToLiveRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.BeginToLiveRespBody;
  return proto.BeginToLiveRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.BeginToLiveRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.BeginToLiveRespBody}
 */
proto.BeginToLiveRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTime(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setLiveid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setRtmppublishurl(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setRtmpliveurl(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.BeginToLiveRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.BeginToLiveRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.BeginToLiveRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.BeginToLiveRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getLiveid();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
  f = message.getRtmppublishurl();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getRtmpliveurl();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
};


/**
 * optional int64 time = 1;
 * @return {number}
 */
proto.BeginToLiveRespBody.prototype.getTime = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.BeginToLiveRespBody.prototype.setTime = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional int64 liveid = 2;
 * @return {number}
 */
proto.BeginToLiveRespBody.prototype.getLiveid = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {number} value */
proto.BeginToLiveRespBody.prototype.setLiveid = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * optional string rtmppublishurl = 3;
 * @return {string}
 */
proto.BeginToLiveRespBody.prototype.getRtmppublishurl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/** @param {string} value */
proto.BeginToLiveRespBody.prototype.setRtmppublishurl = function(value) {
  jspb.Message.setField(this, 3, value);
};


/**
 * optional string rtmpliveurl = 4;
 * @return {string}
 */
proto.BeginToLiveRespBody.prototype.getRtmpliveurl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/** @param {string} value */
proto.BeginToLiveRespBody.prototype.setRtmpliveurl = function(value) {
  jspb.Message.setField(this, 4, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.EndLiveReqBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.EndLiveReqBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.EndLiveReqBody.displayName = 'proto.EndLiveReqBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.EndLiveReqBody.prototype.toObject = function(opt_includeInstance) {
  return proto.EndLiveReqBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.EndLiveReqBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.EndLiveReqBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: jspb.Message.getFieldWithDefault(msg, 1, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.EndLiveReqBody}
 */
proto.EndLiveReqBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.EndLiveReqBody;
  return proto.EndLiveReqBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.EndLiveReqBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.EndLiveReqBody}
 */
proto.EndLiveReqBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTime(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.EndLiveReqBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.EndLiveReqBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.EndLiveReqBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.EndLiveReqBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
};


/**
 * optional int64 time = 1;
 * @return {number}
 */
proto.EndLiveReqBody.prototype.getTime = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.EndLiveReqBody.prototype.setTime = function(value) {
  jspb.Message.setField(this, 1, value);
};



/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.EndLiveRespBody = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.EndLiveRespBody, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  proto.EndLiveRespBody.displayName = 'proto.EndLiveRespBody';
}


if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto suitable for use in Soy templates.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
 * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
 *     for transitional soy proto support: http://goto/soy-param-migration
 * @return {!Object}
 */
proto.EndLiveRespBody.prototype.toObject = function(opt_includeInstance) {
  return proto.EndLiveRespBody.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Whether to include the JSPB
 *     instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.EndLiveRespBody} msg The msg instance to transform.
 * @return {!Object}
 */
proto.EndLiveRespBody.toObject = function(includeInstance, msg) {
  var f, obj = {
    time: jspb.Message.getFieldWithDefault(msg, 1, 0),
    liveid: jspb.Message.getFieldWithDefault(msg, 2, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.EndLiveRespBody}
 */
proto.EndLiveRespBody.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.EndLiveRespBody;
  return proto.EndLiveRespBody.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.EndLiveRespBody} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.EndLiveRespBody}
 */
proto.EndLiveRespBody.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTime(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setLiveid(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.EndLiveRespBody.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.EndLiveRespBody.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.EndLiveRespBody} message
 * @param {!jspb.BinaryWriter} writer
 */
proto.EndLiveRespBody.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getTime();
  if (f !== 0) {
    writer.writeInt64(
      1,
      f
    );
  }
  f = message.getLiveid();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
};


/**
 * optional int64 time = 1;
 * @return {number}
 */
proto.EndLiveRespBody.prototype.getTime = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/** @param {number} value */
proto.EndLiveRespBody.prototype.setTime = function(value) {
  jspb.Message.setField(this, 1, value);
};


/**
 * optional int64 liveid = 2;
 * @return {number}
 */
proto.EndLiveRespBody.prototype.getLiveid = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/** @param {number} value */
proto.EndLiveRespBody.prototype.setLiveid = function(value) {
  jspb.Message.setField(this, 2, value);
};


/**
 * @enum {number}
 */
proto.DeviceType = {
  DEVICE_TYPE_UNKNOW: 0,
  DEVICE_TYPE_PC: 1,
  DEVICE_TYPE_ANDROID: 2,
  DEVICE_TYPE_IOS: 3
};

/**
 * @enum {number}
 */
proto.Command = {
  COMMAND_UNKNOW: 0,
  COMMAND_HANDSHAKE_REQ: 1,
  COMMAND_HANDSHAKE_RESP: 2,
  COMMAND_AUTH_REQ: 3,
  COMMAND_AUTH_RESP: 4,
  COMMAND_JOIN_GROUP_REQ: 5,
  COMMAND_JOIN_GROUP_RESP: 6,
  COMMAND_JOIN_GROUP_NOTIFY_RESP: 7,
  COMMAND_EXIT_GROUP_NOTIFY_RESP: 20,
  COMMAND_CHAT_REQ: 8,
  COMMAND_CHAT_RESP: 9,
  COMMAND_START_SHOW_REQ: 10,
  COMMAND_START_SHOW_RESP: 11,
  COMMAND_END_SHOW_REQ: 12,
  COMMAND_END_SHOW_NOTIFY_RESP: 13,
  COMMAND_HEARTBEAT_REQ: 14,
  COMMAND_CLOSE_REQ: 15,
  COMMAND_CLIENT_PAGE_REQ: 16,
  COMMAND_CLIENT_PAGE_RESP: 17,
  COMMAND_LOGIN_REQ: 18,
  COMMAND_LOGIN_RESP: 19,
  COMMAND_CANCEL_MSG_REQ: 21,
  COMMAND_CANCEL_MSG_RESP: 22
};

/**
 * @enum {number}
 */
proto.JoinGroupResult = {
  JOIN_GROUP_RESULT_UNKNOW: 0,
  JOIN_GROUP_RESULT_OK: 1,
  JOIN_GROUP_RESULT_NOT_EXIST: 2,
  JOIN_GROUP_RESULT_GROUP_FULL: 3,
  JOIN_GROUP_RESULT_IN_BACKLIST: 4,
  JOIN_GROUP_RESULT_TAKEOUTED: 5
};

/**
 * @enum {number}
 */
proto.ChatType = {
  CHAT_TYPE_UNKNOW: 0,
  CHAT_TYPE_PUBLIC: 1,
  CHAT_TYPE_PRIVATE: 2
};

